<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>finding_donors</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
[dir="rtl"] #ipython_notebook {
  float: right !important;
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
[dir="rtl"] #tabs li {
  float: right;
}
ul#tabs {
  margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
  margin-right: 0px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
  padding-top: 1px;
  float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
  float: right !important;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
  float: right;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
[dir="rtl"] #new-menu {
  text-align: right;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  min-width: 0;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 21ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  width: 100%;
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
  padding: 10px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="&#26426;&#22120;&#23398;&#20064;&#32435;&#31859;&#23398;&#20301;">&#26426;&#22120;&#23398;&#20064;&#32435;&#31859;&#23398;&#20301;<a class="anchor-link" href="#&#26426;&#22120;&#23398;&#20064;&#32435;&#31859;&#23398;&#20301;">&#182;</a></h1><h2 id="&#30417;&#30563;&#23398;&#20064;">&#30417;&#30563;&#23398;&#20064;<a class="anchor-link" href="#&#30417;&#30563;&#23398;&#20064;">&#182;</a></h2><h2 id="&#39033;&#30446;2:-&#20026;CharityML&#23547;&#25214;&#25424;&#29486;&#32773;">&#39033;&#30446;2: &#20026;<em>CharityML</em>&#23547;&#25214;&#25424;&#29486;&#32773;<a class="anchor-link" href="#&#39033;&#30446;2:-&#20026;CharityML&#23547;&#25214;&#25424;&#29486;&#32773;">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>欢迎来到机器学习工程师纳米学位的第二个项目！在此文件中，有些示例代码已经提供给你，但你还需要实现更多的功能让项目成功运行。除非有明确要求，你无须修改任何已给出的代码。以<strong>'练习'</strong>开始的标题表示接下来的代码部分中有你必须要实现的功能。每一部分都会有详细的指导，需要实现的部分也会在注释中以'TODO'标出。请仔细阅读所有的提示！</p>
<p>除了实现代码外，你还必须回答一些与项目和你的实现有关的问题。每一个需要你回答的问题都会以<strong>'问题 X'</strong>为标题。请仔细阅读每个问题，并且在问题后的<strong>'回答'</strong>文字框中写出完整的答案。我们将根据你对问题的回答和撰写代码所实现的功能来对你提交的项目进行评分。</p>
<blockquote><p><strong>提示：</strong>Code 和 Markdown 区域可通过<strong>Shift + Enter</strong>快捷键运行。此外，Markdown可以通过双击进入编辑模式。</p>
</blockquote>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#24320;&#22987;">&#24320;&#22987;<a class="anchor-link" href="#&#24320;&#22987;">&#182;</a></h2><p>在这个项目中，你将使用1994年美国人口普查收集的数据，选用几个监督学习算法以准确地建模被调查者的收入。然后，你将根据初步结果从中选择出最佳的候选算法，并进一步优化该算法以最好地建模这些数据。你的目标是建立一个能够准确地预测被调查者年收入是否超过50000美元的模型。这种类型的任务会出现在那些依赖于捐款而存在的非营利性组织。了解人群的收入情况可以帮助一个非营利性的机构更好地了解他们要多大的捐赠，或是否他们应该接触这些人。虽然我们很难直接从公开的资源中推断出一个人的一般收入阶层，但是我们可以（也正是我们将要做的）从其他的一些公开的可获得的资源中获得一些特征从而推断出该值。</p>
<p>这个项目的数据集来自<a href="https://archive.ics.uci.edu/ml/datasets/Census+Income">UCI机器学习知识库</a>。这个数据集是由Ron Kohavi和Barry Becker在发表文章_"Scaling Up the Accuracy of Naive-Bayes Classifiers: A Decision-Tree Hybrid"_之后捐赠的，你可以在Ron Kohavi提供的<a href="https://www.aaai.org/Papers/KDD/1996/KDD96-033.pdf">在线版本</a>中找到这个文章。我们在这里探索的数据集相比于原有的数据集有一些小小的改变，比如说移除了特征<code>'fnlwgt'</code> 以及一些遗失的或者是格式不正确的记录。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#25506;&#32034;&#25968;&#25454;">&#25506;&#32034;&#25968;&#25454;<a class="anchor-link" href="#&#25506;&#32034;&#25968;&#25454;">&#182;</a></h2><p>运行下面的代码单元以载入需要的Python库并导入人口普查数据。注意数据集的最后一列<code>'income'</code>将是我们需要预测的列（表示被调查者的年收入会大于或者是最多50,000美元），人口普查数据中的每一列都将是关于被调查者的特征。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># 为这个项目导入需要的库</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
<span class="kn">from</span> <span class="nn">time</span> <span class="k">import</span> <span class="n">time</span>
<span class="kn">from</span> <span class="nn">IPython.display</span> <span class="k">import</span> <span class="n">display</span> <span class="c1"># 允许为DataFrame使用display()</span>

<span class="c1"># 导入附加的可视化代码visuals.py</span>
<span class="kn">import</span> <span class="nn">visuals</span> <span class="k">as</span> <span class="nn">vs</span>

<span class="c1"># 为notebook提供更加漂亮的可视化</span>
<span class="o">%</span><span class="k">matplotlib</span> inline

<span class="c1"># 导入人口普查数据</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="s2">&quot;census.csv&quot;</span><span class="p">)</span>

<span class="c1"># 成功 - 显示第一条记录</span>
<span class="n">display</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="n">n</span><span class="o">=</span><span class="mi">1</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>age</th>
      <th>workclass</th>
      <th>education_level</th>
      <th>education-num</th>
      <th>marital-status</th>
      <th>occupation</th>
      <th>relationship</th>
      <th>race</th>
      <th>sex</th>
      <th>capital-gain</th>
      <th>capital-loss</th>
      <th>hours-per-week</th>
      <th>native-country</th>
      <th>income</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>39</td>
      <td>State-gov</td>
      <td>Bachelors</td>
      <td>13.0</td>
      <td>Never-married</td>
      <td>Adm-clerical</td>
      <td>Not-in-family</td>
      <td>White</td>
      <td>Male</td>
      <td>2174.0</td>
      <td>0.0</td>
      <td>40.0</td>
      <td>United-States</td>
      <td>&lt;=50K</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#25968;&#25454;&#25506;&#32034;">&#32451;&#20064;&#65306;&#25968;&#25454;&#25506;&#32034;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#25968;&#25454;&#25506;&#32034;">&#182;</a></h3><p>首先我们对数据集进行一个粗略的探索，我们将看看每一个类别里会有多少被调查者？并且告诉我们这些里面多大比例是年收入大于50,000美元的。在下面的代码单元中，你将需要计算以下量：</p>
<ul>
<li>总的记录数量，<code>'n_records'</code></li>
<li>年收入大于50,000美元的人数，<code>'n_greater_50k'</code>.</li>
<li>年收入最多为50,000美元的人数 <code>'n_at_most_50k'</code>.</li>
<li>年收入大于50,000美元的人所占的比例， <code>'greater_percent'</code>.</li>
</ul>
<p><strong>提示：</strong> 您可能需要查看上面的生成的表，以了解<code>'income'</code>条目的格式是什么样的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO：总的记录数</span>
<span class="n">n_records</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

<span class="c1"># TODO：被调查者的收入大于$50,000的人数</span>
<span class="n">n_greater_50k</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">data</span><span class="p">[</span><span class="s1">&#39;income&#39;</span><span class="p">]</span> <span class="k">if</span> <span class="n">i</span><span class="o">==</span><span class="s1">&#39;&gt;50K&#39;</span><span class="p">])</span>

<span class="c1"># TODO：被调查者的收入最多为$50,000的人数</span>
<span class="n">n_at_most_50k</span> <span class="o">=</span> <span class="n">n_records</span><span class="o">-</span><span class="n">n_greater_50k</span>

<span class="c1"># TODO：被调查者收入大于$50,000所占的比例</span>
<span class="n">greater_percent</span> <span class="o">=</span> <span class="n">n_greater_50k</span><span class="o">/</span><span class="n">n_records</span><span class="o">*</span><span class="mi">100</span>

<span class="c1"># 打印结果</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Total number of records: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n_records</span><span class="p">))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Individuals making more than $50,000: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n_greater_50k</span><span class="p">))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Individuals making at most $50,000: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n_at_most_50k</span><span class="p">))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Percentage of individuals making more than $50,000: </span><span class="si">{:.2f}</span><span class="s2">%&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">greater_percent</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Total number of records: 45222
Individuals making more than $50,000: 11208
Individuals making at most $50,000: 34014
Percentage of individuals making more than $50,000: 24.78%
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#20934;&#22791;&#25968;&#25454;">&#20934;&#22791;&#25968;&#25454;<a class="anchor-link" href="#&#20934;&#22791;&#25968;&#25454;">&#182;</a></h2><p>在数据能够被作为输入提供给机器学习算法之前，它经常需要被清洗，格式化，和重新组织 - 这通常被叫做<strong>预处理</strong>。幸运的是，对于这个数据集，没有我们必须处理的无效或丢失的条目，然而，由于某一些特征存在的特性我们必须进行一定的调整。这个预处理都可以极大地帮助我们提升几乎所有的学习算法的结果和预测能力。</p>
<h3 id="&#33719;&#24471;&#29305;&#24449;&#21644;&#26631;&#31614;">&#33719;&#24471;&#29305;&#24449;&#21644;&#26631;&#31614;<a class="anchor-link" href="#&#33719;&#24471;&#29305;&#24449;&#21644;&#26631;&#31614;">&#182;</a></h3><p><code>income</code> 列是我们需要的标签，记录一个人的年收入是否高于50K。 因此我们应该把他从数据中剥离出来，单独存放。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># 将数据切分成特征和对应的标签</span>
<span class="n">income_raw</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">&#39;income&#39;</span><span class="p">]</span>
<span class="n">features_raw</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">drop</span><span class="p">(</span><span class="s1">&#39;income&#39;</span><span class="p">,</span> <span class="n">axis</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#36716;&#25442;&#20542;&#26012;&#30340;&#36830;&#32493;&#29305;&#24449;">&#36716;&#25442;&#20542;&#26012;&#30340;&#36830;&#32493;&#29305;&#24449;<a class="anchor-link" href="#&#36716;&#25442;&#20542;&#26012;&#30340;&#36830;&#32493;&#29305;&#24449;">&#182;</a></h3><p>一个数据集有时可能包含至少一个靠近某个数字的特征，但有时也会有一些相对来说存在极大值或者极小值的不平凡分布的的特征。算法对这种分布的数据会十分敏感，并且如果这种数据没有能够很好地规一化处理会使得算法表现不佳。在人口普查数据集的两个特征符合这个描述：'<code>capital-gain'</code>和<code>'capital-loss'</code>。</p>
<p>运行下面的代码单元以创建一个关于这两个特征的条形图。请注意当前的值的范围和它们是如何分布的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># 可视化 &#39;capital-gain&#39;和&#39;capital-loss&#39; 两个特征</span>
<span class="n">vs</span><span class="o">.</span><span class="n">distribution</span><span class="p">(</span><span class="n">features_raw</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>对于高度倾斜分布的特征如<code>'capital-gain'</code>和<code>'capital-loss'</code>，常见的做法是对数据施加一个<a href="https://en.wikipedia.org/wiki/Data_transformation_(statistics)">对数转换</a>，将数据转换成对数，这样非常大和非常小的值不会对学习算法产生负面的影响。并且使用对数变换显著降低了由于异常值所造成的数据范围异常。但是在应用这个变换时必须小心：因为0的对数是没有定义的，所以我们必须先将数据处理成一个比0稍微大一点的数以成功完成对数转换。</p>
<p>运行下面的代码单元来执行数据的转换和可视化结果。再次，注意值的范围和它们是如何分布的。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># 对于倾斜的数据使用Log转换</span>
<span class="n">skewed</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;capital-gain&#39;</span><span class="p">,</span> <span class="s1">&#39;capital-loss&#39;</span><span class="p">]</span>
<span class="n">features_raw</span><span class="p">[</span><span class="n">skewed</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">skewed</span><span class="p">]</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span>

<span class="c1"># 可视化对数转换后 &#39;capital-gain&#39;和&#39;capital-loss&#39; 两个特征</span>
<span class="n">vs</span><span class="o">.</span><span class="n">distribution</span><span class="p">(</span><span class="n">features_raw</span><span class="p">,</span> <span class="n">transformed</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
lt95AAAAAElFTkSuQmCC
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#35268;&#19968;&#21270;&#25968;&#23383;&#29305;&#24449;">&#35268;&#19968;&#21270;&#25968;&#23383;&#29305;&#24449;<a class="anchor-link" href="#&#35268;&#19968;&#21270;&#25968;&#23383;&#29305;&#24449;">&#182;</a></h3><p>除了对于高度倾斜的特征施加转换，对数值特征施加一些形式的缩放通常会是一个好的习惯。在数据上面施加一个缩放并不会改变数据分布的形式（比如上面说的'capital-gain' or 'capital-loss'）；但是，规一化保证了每一个特征在使用监督学习器的时候能够被平等的对待。注意一旦使用了缩放，观察数据的原始形式不再具有它本来的意义了，就像下面的例子展示的。</p>
<p>运行下面的代码单元来规一化每一个数字特征。我们将使用<a href="http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html"><code>sklearn.preprocessing.MinMaxScaler</code></a>来完成这个任务。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">sklearn.preprocessing</span> <span class="k">import</span> <span class="n">MinMaxScaler</span>

<span class="c1"># 初始化一个 scaler，并将它施加到特征上</span>
<span class="n">scaler</span> <span class="o">=</span> <span class="n">MinMaxScaler</span><span class="p">()</span>
<span class="n">numerical</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;age&#39;</span><span class="p">,</span> <span class="s1">&#39;education-num&#39;</span><span class="p">,</span> <span class="s1">&#39;capital-gain&#39;</span><span class="p">,</span> <span class="s1">&#39;capital-loss&#39;</span><span class="p">,</span> <span class="s1">&#39;hours-per-week&#39;</span><span class="p">]</span>
<span class="n">features_raw</span><span class="p">[</span><span class="n">numerical</span><span class="p">]</span> <span class="o">=</span> <span class="n">scaler</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">numerical</span><span class="p">])</span>

<span class="c1"># 显示一个经过缩放的样例记录</span>
<span class="n">display</span><span class="p">(</span><span class="n">features_raw</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="n">n</span> <span class="o">=</span> <span class="mi">1</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stderr output_text">
<pre>D:\conda\lib\site-packages\sklearn\preprocessing\data.py:323: DataConversionWarning: Data with input dtype int64, float64 were all converted to float64 by MinMaxScaler.
  return self.partial_fit(X, y)
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>



<div class="output_html rendered_html output_subarea ">
<div>
<style>
    .dataframe thead tr:only-child th {
        text-align: right;
    }

    .dataframe thead th {
        text-align: left;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>age</th>
      <th>workclass</th>
      <th>education_level</th>
      <th>education-num</th>
      <th>marital-status</th>
      <th>occupation</th>
      <th>relationship</th>
      <th>race</th>
      <th>sex</th>
      <th>capital-gain</th>
      <th>capital-loss</th>
      <th>hours-per-week</th>
      <th>native-country</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0.30137</td>
      <td>State-gov</td>
      <td>Bachelors</td>
      <td>0.8</td>
      <td>Never-married</td>
      <td>Adm-clerical</td>
      <td>Not-in-family</td>
      <td>White</td>
      <td>Male</td>
      <td>0.02174</td>
      <td>0.0</td>
      <td>0.397959</td>
      <td>United-States</td>
    </tr>
  </tbody>
</table>
</div>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#25968;&#25454;&#39044;&#22788;&#29702;">&#32451;&#20064;&#65306;&#25968;&#25454;&#39044;&#22788;&#29702;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#25968;&#25454;&#39044;&#22788;&#29702;">&#182;</a></h3><p>从上面的<strong>数据探索</strong>中的表中，我们可以看到有几个属性的每一条记录都是非数字的。通常情况下，学习算法期望输入是数字的，这要求非数字的特征（称为类别变量）被转换。转换类别变量的一种流行的方法是使用<strong>独热编码</strong>方案。独热编码为每一个非数字特征的每一个可能的类别创建一个_“虚拟”_变量。例如，假设<code>someFeature</code>有三个可能的取值<code>A</code>，<code>B</code>或者<code>C</code>，。我们将把这个特征编码成<code>someFeature_A</code>, <code>someFeature_B</code>和<code>someFeature_C</code>.</p>
<table>
<thead><tr>
<th style="text-align:center">特征X</th>
<th></th>
<th style="text-align:center">特征X_A</th>
<th style="text-align:center">特征X_B</th>
<th style="text-align:center">特征X_C</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">B</td>
<td></td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
</tr>
<tr>
<td style="text-align:center">C</td>
<td>----&gt; 独热编码 ----&gt;</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
</tr>
<tr>
<td style="text-align:center">A</td>
<td></td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
</tr>
</tbody>
</table>
<p>此外，对于非数字的特征，我们需要将非数字的标签<code>'income'</code>转换成数值以保证学习算法能够正常工作。因为这个标签只有两种可能的类别（"&lt;=50K"和"&gt;50K"），我们不必要使用独热编码，可以直接将他们编码分别成两个类<code>0</code>和<code>1</code>，在下面的代码单元中你将实现以下功能：</p>
<ul>
<li>使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html?highlight=get_dummies#pandas.get_dummies"><code>pandas.get_dummies()</code></a>对<code>'features_raw'</code>数据来施加一个独热编码。</li>
<li>将目标标签<code>'income_raw'</code>转换成数字项。<ul>
<li>将"&lt;=50K"转换成<code>0</code>；将"&gt;50K"转换成<code>1</code>。</li>
</ul>
</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO：使用pandas.get_dummies()对&#39;features_raw&#39;数据进行独热编码</span>
<span class="n">features</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">get_dummies</span><span class="p">(</span><span class="n">features_raw</span><span class="p">)</span>

<span class="c1"># TODO：将&#39;income_raw&#39;编码成数字值</span>
<span class="n">income</span><span class="o">=</span> <span class="n">income_raw</span><span class="o">.</span><span class="n">replace</span><span class="p">([</span><span class="s1">&#39;&gt;50K&#39;</span><span class="p">,</span> <span class="s1">&#39;&lt;=50K&#39;</span><span class="p">],</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">])</span>

<span class="c1"># 打印经过独热编码之后的特征数量</span>
<span class="n">encoded</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">features</span><span class="o">.</span><span class="n">columns</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2"> total features after one-hot encoding.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">encoded</span><span class="p">)))</span>

<span class="c1"># 移除下面一行的注释以观察编码的特征名字</span>
<span class="c1">#print (income)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>103 total features after one-hot encoding.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#28151;&#27927;&#21644;&#20999;&#20998;&#25968;&#25454;">&#28151;&#27927;&#21644;&#20999;&#20998;&#25968;&#25454;<a class="anchor-link" href="#&#28151;&#27927;&#21644;&#20999;&#20998;&#25968;&#25454;">&#182;</a></h3><p>现在所有的 <em>类别变量</em> 已被转换成数值特征，而且所有的数值特征已被规一化。和我们一般情况下做的一样，我们现在将数据（包括特征和它们的标签）切分成训练和测试集。其中80%的数据将用于训练和20%的数据用于测试。然后再进一步把训练数据分为训练集和验证集，用来选择和优化模型。</p>
<p>运行下面的代码单元来完成切分。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># 导入 train_test_split</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">train_test_split</span>

<span class="c1"># 将&#39;features&#39;和&#39;income&#39;数据切分成训练集和测试集</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_test</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_test</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">features</span><span class="p">,</span> <span class="n">income</span><span class="p">,</span> <span class="n">test_size</span> <span class="o">=</span> <span class="mf">0.2</span><span class="p">,</span> <span class="n">random_state</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
                                                    <span class="n">stratify</span> <span class="o">=</span> <span class="n">income</span><span class="p">)</span>
<span class="c1"># 将&#39;X_train&#39;和&#39;y_train&#39;进一步切分为训练集和验证集</span>
<span class="n">X_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_val</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
                                                    <span class="n">stratify</span> <span class="o">=</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># 显示切分的结果</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Training set has </span><span class="si">{}</span><span class="s2"> samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">X_train</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Validation set has </span><span class="si">{}</span><span class="s2"> samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">X_val</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Testing set has </span><span class="si">{}</span><span class="s2"> samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">X_test</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Training set has 28941 samples.
Validation set has 7236 samples.
Testing set has 9045 samples.
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#35780;&#20215;&#27169;&#22411;&#24615;&#33021;">&#35780;&#20215;&#27169;&#22411;&#24615;&#33021;<a class="anchor-link" href="#&#35780;&#20215;&#27169;&#22411;&#24615;&#33021;">&#182;</a></h2><p>在这一部分中，我们将尝试四种不同的算法，并确定哪一个能够最好地建模数据。四种算法包含一个<em>天真的预测器</em> 和三个你选择的监督学习器。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#35780;&#20215;&#26041;&#27861;&#21644;&#26420;&#32032;&#30340;&#39044;&#27979;&#22120;">&#35780;&#20215;&#26041;&#27861;&#21644;&#26420;&#32032;&#30340;&#39044;&#27979;&#22120;<a class="anchor-link" href="#&#35780;&#20215;&#26041;&#27861;&#21644;&#26420;&#32032;&#30340;&#39044;&#27979;&#22120;">&#182;</a></h3><p><em>CharityML</em>通过他们的研究人员知道被调查者的年收入大于\$50,000最有可能向他们捐款。因为这个原因*CharityML*对于准确预测谁能够获得\$50,000以上收入尤其有兴趣。这样看起来使用<strong>准确率</strong>作为评价模型的标准是合适的。另外，把<em>没有</em>收入大于\$50,000的人识别成年收入大于\$50,000对于<em>CharityML</em>来说是有害的，因为他想要找到的是有意愿捐款的用户。这样，我们期望的模型具有准确预测那些能够年收入大于\$50,000的能力比模型去<strong>查全</strong>这些被调查者<em>更重要</em>。我们能够使用<strong>F-beta score</strong>作为评价指标，这样能够同时考虑查准率和查全率：</p>
$$ F_{\beta} = (1 + \beta^2) \cdot \frac{precision \cdot recall}{\left( \beta^2 \cdot precision \right) + recall} $$<p>尤其是，当 $\beta = 0.5$ 的时候更多的强调查准率，这叫做<strong>F$_{0.5}$ score</strong> （或者为了简单叫做F-score）。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-1---&#22825;&#30495;&#30340;&#39044;&#27979;&#22120;&#30340;&#24615;&#33021;">&#38382;&#39064; 1 - &#22825;&#30495;&#30340;&#39044;&#27979;&#22120;&#30340;&#24615;&#33021;<a class="anchor-link" href="#&#38382;&#39064;-1---&#22825;&#30495;&#30340;&#39044;&#27979;&#22120;&#30340;&#24615;&#33021;">&#182;</a></h3><p>通过查看收入超过和不超过 \$50,000 的人数，我们能发现多数被调查者年收入没有超过 \$50,000。如果我们简单地预测说<em>“这个人的收入没有超过 \$50,000”</em>，我们就可以得到一个 准确率超过 50% 的预测。这样我们甚至不用看数据就能做到一个准确率超过 50%。这样一个预测被称作是天真的。通常对数据使用一个<em>天真的预测器</em>是十分重要的，这样能够帮助建立一个模型表现是否好的基准。 使用下面的代码单元计算天真的预测器的相关性能。将你的计算结果赋值给<code>'accuracy'</code>, <code>‘precision’</code>, <code>‘recall’</code> 和 <code>'fscore'</code>，这些值会在后面被使用，请注意这里不能使用scikit-learn，你需要根据公式自己实现相关计算。</p>
<p><em>如果我们选择一个无论什么情况都预测被调查者年收入大于 \$50,000 的模型，那么这个模型在<strong>验证集上</strong>的准确率，查准率，查全率和 F-score是多少？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#不能使用scikit-learn，你需要根据公式自己实现相关计算。</span>

<span class="c1">#TODO： 计算准确率</span>

<span class="n">accuracy</span> <span class="o">=</span><span class="nb">sum</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">accuracy</span><span class="p">)</span>
<span class="c1"># TODO： 计算查准率 Precision</span>
<span class="n">precision</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span><span class="o">/</span><span class="nb">len</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span>

<span class="c1"># TODO： 计算查全率 Recall</span>
<span class="n">recall</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span><span class="o">/</span><span class="nb">sum</span><span class="p">(</span><span class="n">y_val</span><span class="p">)</span>

<span class="c1"># TODO： 使用上面的公式，设置beta=0.5，计算F-score</span>
<span class="n">fscore</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="o">+</span><span class="mf">0.5</span><span class="o">*</span><span class="mf">0.5</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">precision</span><span class="o">*</span><span class="n">recall</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">0.5</span><span class="o">*</span><span class="mf">0.5</span><span class="o">*</span><span class="n">precision</span><span class="o">+</span><span class="n">recall</span><span class="p">)</span>

<span class="c1"># 打印结果</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Naive Predictor on validation data: </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    Accuracy score: </span><span class="si">{:.4f}</span><span class="s2"> </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    Precision: </span><span class="si">{:.4f}</span><span class="s2"> </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    Recall: </span><span class="si">{:.4f}</span><span class="s2"> </span><span class="se">\n</span><span class="s2"> </span><span class="se">\</span>
<span class="s2">    F-score: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy</span><span class="p">,</span> <span class="n">precision</span><span class="p">,</span> <span class="n">recall</span><span class="p">,</span> <span class="n">fscore</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>0.24778883361
Naive Predictor on validation data: 
     Accuracy score: 0.2478 
     Precision: 0.2478 
     Recall: 1.0000 
     F-score: 0.2917
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="&#30417;&#30563;&#23398;&#20064;&#27169;&#22411;">&#30417;&#30563;&#23398;&#20064;&#27169;&#22411;<a class="anchor-link" href="#&#30417;&#30563;&#23398;&#20064;&#27169;&#22411;">&#182;</a></h2><h3 id="&#38382;&#39064;-2---&#27169;&#22411;&#24212;&#29992;">&#38382;&#39064; 2 - &#27169;&#22411;&#24212;&#29992;<a class="anchor-link" href="#&#38382;&#39064;-2---&#27169;&#22411;&#24212;&#29992;">&#182;</a></h3><p>你能够在 <a href="http://scikit-learn.org/stable/supervised_learning.html"><code>scikit-learn</code></a> 中选择以下监督学习模型</p>
<ul>
<li>高斯朴素贝叶斯 (GaussianNB)</li>
<li>决策树 (DecisionTree)</li>
<li>集成方法 (Bagging, AdaBoost, Random Forest, Gradient Boosting)</li>
<li>K近邻 (K Nearest Neighbors)</li>
<li>随机梯度下降分类器 (SGDC)</li>
<li>支撑向量机 (SVM)</li>
<li>Logistic回归（LogisticRegression）</li>
</ul>
<p>从上面的监督学习模型中选择三个适合我们这个问题的模型，并回答相应问题。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;1">&#27169;&#22411;1<a class="anchor-link" href="#&#27169;&#22411;1">&#182;</a></h3><p><strong>模型名称</strong></p>
<p>回答：决策树</p>
<p><strong>描述一个该模型在真实世界的一个应用场景。（你需要为此做点研究，并给出你的引用出处）</strong></p>
<p>回答：泰坦尼克号幸存者预测，首先判别性别，如果是女士，由于女士幸存比例高，则预测生存；如果是男士，先判别船舱级别，如果为三等车厢则直接预测死亡，接下来如果年纪比较大，例如大于30岁，则预测死亡。<a href="https://classroom.udacity.com/nanodegrees/nd009-cn-advanced/parts/93afd7ee-1022-4c84-a5c1-0cef36e88f25/modules/cf924e64-3c6c-4806-aba9-0863b63a85b0/lessons/cebc6b91-c76f-4e94-b11c-24a2481c27a1/concepts/f953ab42-596f-4736-bf72-7c07c927d212"> <code>链接</code> </a></p>
<p><strong>这个模型的优势是什么？他什么情况下表现最好？</strong></p>
<p>回答：决策树非常容易理解和解释，能够生成清晰的基于特征选择不同预测结果的树状结构，当数据一些特征比较强势，那么表现效果会很好。</p>
<p><strong>这个模型的缺点是什么？什么条件下它表现很差？</strong></p>
<p>回答：容易过拟合；由于简单，调整单个条件有可能导致结果差异比较大。当分类比较复杂，特征之间联系比较强时，表现比较差</p>
<p><strong>根据我们当前数据集的特点，为什么这个模型适合这个问题。</strong></p>
<p>回答：数据集特征间分类不太强，模型中有几个量权重比较大，对结果影响比较大，模型执行效率好。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;2">&#27169;&#22411;2<a class="anchor-link" href="#&#27169;&#22411;2">&#182;</a></h3><p><strong>模型名称</strong></p>
<p>回答：逻辑回归</p>
<p><strong>描述一个该模型在真实世界的一个应用场景。（你需要为此做点研究，并给出你的引用出处）</strong></p>
<p>回答：逻辑回归模型在玉树地震滑坡危险性评价中的应用与检验<a href="http://www.cqvip.com/qk/98122x/201203/42463664.html"> <code>链接</code> </a></p>
<p><strong>这个模型的优势是什么？他什么情况下表现最好？</strong></p>
<p>回答：简单，背后逻辑清晰，易于理解，从多个特征中筛选出具有显著影响的特征。</p>
<p><strong>这个模型的缺点是什么？什么条件下它表现很差？</strong></p>
<p>回答：它是一个线性的分类器，所以处理不好特征之间相关的情况。当分类比较复杂和关联性比较强时，表现不好。</p>
<p><strong>根据我们当前数据集的特点，为什么这个模型适合这个问题。</strong></p>
<p>回答：本数据集有几个显著的特征，特征之间联系也不强，执行效率高。并参考了后面比较的结果</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#27169;&#22411;3">&#27169;&#22411;3<a class="anchor-link" href="#&#27169;&#22411;3">&#182;</a></h3><p><strong>模型名称</strong></p>
<p>回答：AdaBoostClassifier</p>
<p><strong>描述一个该模型在真实世界的一个应用场景。（你需要为此做点研究，并给出你的引用出处）</strong></p>
<p>回答：基于BP-Adaboost模型的年降水量预测研究<a href="http://www.cqvip.com/qk/95562a/201405/663290886.html"> <code>链接</code> </a></p>
<p><strong>这个模型的优势是什么？他什么情况下表现最好？</strong></p>
<p>回答：把多个较弱的分类器结合起来的时候，组成一个强的分类器。自带特征选择。</p>
<p><strong>这个模型的缺点是什么？什么条件下它表现很差？</strong></p>
<p>回答：训练时间较长，比较依赖于弱选择器。当数据存在异样样本时和分布不均匀时，表现不好。</p>
<p><strong>根据我们当前数据集的特点，为什么这个模型适合这个问题。</strong></p>
<p>回答：Adaboost适用性强，训练精度高，使用比较简单。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;---&#21019;&#24314;&#19968;&#20010;&#35757;&#32451;&#21644;&#39044;&#27979;&#30340;&#27969;&#27700;&#32447;">&#32451;&#20064; - &#21019;&#24314;&#19968;&#20010;&#35757;&#32451;&#21644;&#39044;&#27979;&#30340;&#27969;&#27700;&#32447;<a class="anchor-link" href="#&#32451;&#20064;---&#21019;&#24314;&#19968;&#20010;&#35757;&#32451;&#21644;&#39044;&#27979;&#30340;&#27969;&#27700;&#32447;">&#182;</a></h3><p>为了正确评估你选择的每一个模型的性能，创建一个能够帮助你快速有效地使用不同大小的训练集并在验证集上做预测的训练和验证的流水线是十分重要的。
你在这里实现的功能将会在接下来的部分中被用到。在下面的代码单元中，你将实现以下功能：</p>
<ul>
<li>从<a href="http://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics"><code>sklearn.metrics</code></a>中导入<code>fbeta_score</code>和<code>accuracy_score</code>。</li>
<li>用训练集拟合学习器，并记录训练时间。</li>
<li>对训练集的前300个数据点和验证集进行预测并记录预测时间。</li>
<li>计算预测训练集的前300个数据点的准确率和F-score。</li>
<li>计算预测验证集的准确率和F-score。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO：从sklearn中导入两个评价指标 - fbeta_score和accuracy_score</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">fbeta_score</span><span class="p">,</span> <span class="n">accuracy_score</span>

<span class="k">def</span> <span class="nf">train_predict</span><span class="p">(</span><span class="n">learner</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">,</span> <span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_val</span><span class="p">):</span> 
    <span class="sd">&#39;&#39;&#39;</span>
<span class="sd">    inputs:</span>
<span class="sd">       - learner: the learning algorithm to be trained and predicted on</span>
<span class="sd">       - sample_size: the size of samples (number) to be drawn from training set</span>
<span class="sd">       - X_train: features training set</span>
<span class="sd">       - y_train: income training set</span>
<span class="sd">       - X_val: features validation set</span>
<span class="sd">       - y_val: income validation set</span>
<span class="sd">    &#39;&#39;&#39;</span>
    
    <span class="n">results</span> <span class="o">=</span> <span class="p">{}</span>
    
    <span class="c1"># TODO：使用sample_size大小的训练数据来拟合学习器</span>
    <span class="c1"># TODO: Fit the learner to the training data using slicing with &#39;sample_size&#39;</span>
    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序开始时间</span>
    <span class="n">learner</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">[:</span><span class="n">sample_size</span><span class="p">],</span><span class="n">y_train</span><span class="p">[:</span><span class="n">sample_size</span><span class="p">])</span>
    <span class="n">end</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序结束时间</span>
    
    <span class="c1"># TODO：计算训练时间</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;train_time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">end</span><span class="o">-</span><span class="n">start</span>
    
    <span class="c1"># TODO: 得到在验证集上的预测值</span>
    <span class="c1">#       然后得到对前300个训练数据的预测结果</span>
    <span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序开始时间</span>
    <span class="n">predictions_val</span> <span class="o">=</span> <span class="n">learner</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>
    <span class="n">predictions_train</span> <span class="o">=</span> <span class="n">learner</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_train</span><span class="p">[:</span> <span class="mi">300</span><span class="p">])</span>
    <span class="n">end</span> <span class="o">=</span> <span class="n">time</span><span class="p">()</span> <span class="c1"># 获得程序结束时间</span>
    
    <span class="c1"># TODO：计算预测用时</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;pred_time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">end</span><span class="o">-</span><span class="n">start</span>
            
    <span class="c1"># TODO：计算在最前面的300个训练数据的准确率</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;acc_train&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_train</span><span class="p">[:</span> <span class="mi">300</span><span class="p">],</span><span class="n">predictions_train</span><span class="p">)</span>
        
    <span class="c1"># TODO：计算在验证上的准确率</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;acc_val&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span><span class="n">predictions_val</span><span class="p">)</span>
    
    <span class="c1"># TODO：计算在最前面300个训练数据上的F-score</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;f_train&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_train</span><span class="p">[:</span> <span class="mi">300</span><span class="p">],</span><span class="n">predictions_train</span><span class="p">,</span><span class="n">beta</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
        
    <span class="c1"># TODO：计算验证集上的F-score</span>
    <span class="n">results</span><span class="p">[</span><span class="s1">&#39;f_val&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span><span class="n">predictions_val</span><span class="p">,</span><span class="n">beta</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
       
    <span class="c1"># 成功</span>
    <span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2"> trained on </span><span class="si">{}</span><span class="s2"> samples.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">learner</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">))</span>
        
    <span class="c1"># 返回结果</span>
    <span class="k">return</span> <span class="n">results</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#21021;&#22987;&#27169;&#22411;&#30340;&#35780;&#20272;">&#32451;&#20064;&#65306;&#21021;&#22987;&#27169;&#22411;&#30340;&#35780;&#20272;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#21021;&#22987;&#27169;&#22411;&#30340;&#35780;&#20272;">&#182;</a></h3><p>在下面的代码单元中，您将需要实现以下功能：</p>
<ul>
<li>导入你在前面讨论的三个监督学习模型。             </li>
<li>初始化三个模型并存储在<code>'clf_A'</code>，<code>'clf_B'</code>和<code>'clf_C'</code>中。<ul>
<li>使用模型的默认参数值，在接下来的部分中你将需要对某一个模型的参数进行调整。             </li>
<li>设置<code>random_state</code>  (如果有这个参数)。       </li>
</ul>
</li>
<li>计算1%， 10%， 100%的训练数据分别对应多少个数据点，并将这些值存储在<code>'samples_1'</code>, <code>'samples_10'</code>, <code>'samples_100'</code>中</li>
</ul>
<p><strong>注意：</strong>取决于你选择的算法，下面实现的代码可能需要一些时间来运行！</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[21]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO：从sklearn中导入三个监督学习模型</span>
<span class="kn">from</span> <span class="nn">sklearn</span> <span class="k">import</span> <span class="n">tree</span><span class="p">,</span> <span class="n">svm</span><span class="p">,</span> <span class="n">ensemble</span><span class="p">,</span><span class="n">naive_bayes</span><span class="p">,</span><span class="n">neighbors</span><span class="p">,</span><span class="n">linear_model</span>
<span class="c1"># TODO：初始化三个模型</span>
<span class="n">clf_A</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">DecisionTreeClassifier</span><span class="p">()</span>
<span class="n">clf_B</span> <span class="o">=</span> <span class="n">linear_model</span><span class="o">.</span><span class="n">LogisticRegression</span><span class="p">()</span>
<span class="n">clf_C</span> <span class="o">=</span> <span class="n">ensemble</span><span class="o">.</span><span class="n">AdaBoostClassifier</span><span class="p">()</span>
<span class="c1">#clf_D=naive_bayes.GaussianNB()</span>
<span class="c1">#clf_E=ensemble.RandomForestClassifier()</span>
<span class="c1">#clf_F=ensemble.RandomForestClassifier()</span>
<span class="c1">#clf_D=ensemble.BaggingClassifier()</span>
<span class="c1">#clf_F=ensemble.GradientBoostingClassifier()</span>


<span class="c1"># TODO：计算1%， 10%， 100%的训练数据分别对应多少点</span>
<span class="n">samples_1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">X_train</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.01</span><span class="p">)</span>
<span class="n">samples_10</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">X_train</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.1</span><span class="p">)</span>
<span class="n">samples_100</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">X_train</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="mi">1</span><span class="p">)</span>

<span class="c1"># 收集学习器的结果</span>
<span class="n">results1</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">clf</span> <span class="ow">in</span> <span class="p">[</span><span class="n">clf_A</span><span class="p">,</span> <span class="n">clf_B</span><span class="p">,</span> <span class="n">clf_C</span><span class="p">]:</span>
    <span class="n">clf_name</span> <span class="o">=</span> <span class="n">clf</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span>
    <span class="n">results1</span><span class="p">[</span><span class="n">clf_name</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
    <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">samples</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">([</span><span class="n">samples_1</span><span class="p">,</span> <span class="n">samples_10</span><span class="p">,</span> <span class="n">samples_100</span><span class="p">]):</span>
        <span class="n">results1</span><span class="p">[</span><span class="n">clf_name</span><span class="p">][</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">train_predict</span><span class="p">(</span><span class="n">clf</span><span class="p">,</span> <span class="n">samples</span><span class="p">,</span> <span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_val</span><span class="p">)</span>
        
<span class="c1">#results2 = {}</span>
<span class="c1">#for clf in [clf_D, clf_E, clf_F]:</span>
    <span class="c1">#clf_name = clf.__class__.__name__</span>
    <span class="c1">#results2[clf_name] = {}</span>
    <span class="c1">#for i, samples in enumerate([samples_1, samples_10, samples_100]):</span>
        <span class="c1">#results2[clf_name][i] = train_predict(clf, samples, X_train, y_train, X_val, y_val)</span>
        
<span class="c1"># 对选择的三个模型得到的评价结果进行可视化</span>
<span class="n">vs</span><span class="o">.</span><span class="n">evaluate</span><span class="p">(</span><span class="n">results1</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">,</span> <span class="n">fscore</span><span class="p">)</span>
<span class="c1">#vs.evaluate(results2, accuracy, fscore)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>DecisionTreeClassifier trained on 289 samples.
DecisionTreeClassifier trained on 2894 samples.
DecisionTreeClassifier trained on 28941 samples.
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stderr output_text">
<pre>D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to &#39;lbfgs&#39; in 0.22. Specify a solver to silence this warning.
  FutureWarning)
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>LogisticRegression trained on 289 samples.
LogisticRegression trained on 2894 samples.
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stderr output_text">
<pre>D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to &#39;lbfgs&#39; in 0.22. Specify a solver to silence this warning.
  FutureWarning)
D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to &#39;lbfgs&#39; in 0.22. Specify a solver to silence this warning.
  FutureWarning)
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>LogisticRegression trained on 28941 samples.
AdaBoostClassifier trained on 289 samples.
AdaBoostClassifier trained on 2894 samples.
AdaBoostClassifier trained on 28941 samples.
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
jDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgz
xhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYC
HHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOM
MWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPG
GGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIc
eDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wx
ZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YY
Y4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4
M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFm
Ahx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhj
jDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgzxhhjjDFmAhx4M8YYY4wxZgIceDPGGGOMMWYCHHgz
xhhjjDFmArrHXYD/rw4fPmxpZmY2zNzcfJAQwgkAPe4yMcYYY4wxCCK6U1BQsLCwsHBeRERErqky
5sD7EdHpdPMdHR2benl5ZVhaWqYScdzNGGOMMfa4CSGQm5trkZSU9Pbdu3cbAhhgqrx5qMmj08zP
z++OlZVVHgfdjDHGGGNPBiKClZVVnp+f3x0AzUyZNwfej465mZmZeNyFYIwxxhhj91NxmrlJ8zRl
ZowxxhhjjP1TceDNGGOMMcaYCfDDlSa2ytU1PCc11aTb3crFJb93SkqMKfOsCG9v77BXXnklZcaM
GVfLShsbG2tZu3btsM2bN8e2b98+3RTle9J07NixZkZGhtn27dvPmyK/t956y/v333+vcu7cuZP6
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
4dkAoD3OZWdn07Fjx4rqT3JysnlcXJz1mDFjrnbv3v1uREREto2NTWFpz0bo6e+oZGVlmQFAnTp1
so4ePWqvfbvGvn37bNLT0831dTcwMDBr9+7dxerE1q1bHaytrQtDQkKK6mGjRo2yo6Kirv3555/n
evbsmbJo0SI3QPbY69dfq2fPnqn79+93+OOPP4yOry7pdYJ79uxxaN68+d2RI0emNm3aNCs0NDTn
woUL9/Wwh4SE5L733ns3Nm/efGHMmDFJS5YsKXpIuKw2U1GNGzfOSEtLM8/KyiLDthoUFGT0BQRP
Gu5qYiXKzc2lxMREXWFhIV2/fl23fft2+5kzZ3o4Ozvnf/HFF5ednJwK33777auffvppdSLCCy+8
cDcvL4+OHDlic/ToUdt58+ZdCQ0NzXnppZduvvvuu75ZWVnUokWLjJSUFPM///zT/qOPPrpumOfv
v/9u99tvvzl26NDhro+PT96pU6esYmNjbfr06WP0av71119PjY6O9uzWrVvN6Ojoy0IIjB49unq1
atVyX3vtNZO893PixIlXevXqFTRs2LDc/v3733RwcCg8efKk9erVq6uuWbMmXqfTYfz48VfGjx/v
6+DgUNi1a9fb5ubmOHbsmPUff/zhuHTp0kQAWLBgQXzLli1rh4eHh4wfP/7KU089lWVhYSF27Nhh
P3v2bI81a9bE6cef6pmZmcHf3z9n5cqVLk2bNs3Izs42Gz9+vLc2zc8//+ywe/duu/bt29+tXr16
/vHjx63Pnz9v3apVqzsA8P7773v4+/vnPvXUU5k2NjaF8+fPd9XpdKJOnToVHm+u9957711bu3at
S4cOHQLef//9q35+fnkXL160/Omnn5x69+59q3nz5jy85AFkZGSY7d27t1ggZ2NjIzp06HArMjLS
V6fTJdSsWTN39uzZbufOnbNZvnz5RQB44403bk6bNs2rZ8+e/p9++mlSRkaG2ZgxY6pbW1sXEpHR
nr+y2mJgYGCumZkZNmzY4FSlSpWb1tbWQns3Q++DDz642qNHj6DBgwf7vPnmmynW1taFO3futG/R
okV6Sc9XuLq6FvTu3Tvlk08+8X7llVdul+dYExYWltOqVas7I0eO9NXpdAkeHh7506dPd09PTzdH
CQ8m64WGhub06NEjZcSIEX43b9683KJFi4y0tDSzAwcO2N64ccNiypQpycuWLasSFxdn2bp163QP
D4/8ffv22SYnJ1uGhIRkA8Dbb7/t/dRTT2XUr18/y8zMDEuWLHG2tbUtDAgIMBoMjBw58mpUVJRP
UFBQdrt27dI2b97ssGzZMrdp06Y9UQ+C/R398MMPTsnJyZYjRoy4YRiMDRo0KLVHjx5BFhYWonXr
1rdHjRrlq9PpEry8vPImT57skZmZWRSEurm5FVStWjV/wYIFbrVr1865fv26bty4cdW1D/3qpaen
myUmJuoA4MqVKxYTJ070tLa2LuzUqdMdABg9evT1//znP+49evTw//jjj6/evHlT9/bbb/tGRESk
P//88+kAMHbs2OS+ffsGjh8/3qN37963Dh48aBsdHe31xhtvXLO2thYnTpywmjt3rmuXLl3u1KhR
IzcxMdHi4MGDDqGhoZmAHONta2tbuHnzZscGDRpk2djYCDc3t4IPPvjg+h9//OHYpUuXWpGRkUlt
27ZN8/DwyD927Jj1N99849aiRYs0Y+fjwMDA7HXr1rn897//dfDz88tdsGCBy7Fjx+wcHR0LAPl2
keHDh1fv0aPHrVq1auWkpqaa//HHH04BAQFZgHwrUmlt5kF06tQp7emnn77bo0ePwEmTJl2OiIjI
TE1N1f3555/21tbWhe++++4T/+wDB94mZuXikv84/ufKB/nd4cOH7f38/MLNzc1hb29fEBAQkPXa
a69dHzt27A39EITo6Oirnp6eed999121qKgoHysrq0J/f//sV155pWhc3Zo1a+LHjh3rOWXKFO93
3nnHwtnZOf/FF180GhRXrVq14ODBg3YLFy6sdvfuXXNXV9e8rl273pw+fbrR/0nP3t5e/Prrr2dH
jBjh065du2AA+Ne//pW2adOmc9qxdI9S9+7d765fv/7slClTPBcvXlwNkO8lbtmy5R39e63ffffd
FGdn54Ivv/zS/fPPP/fS6XTC19c3u3PnzkXbISQkJPfw4cOnoqKiPPX/K6SDg0NBzZo1s4cOHXot
LCzM6MFq0aJFF4YNG+bXrFmzEFdX17zIyMirGRkZRb3jLi4u+Xv27HGYP3++e1pamrmbm1tenz59
UiZPnpwMyNtxM2fO9EhMTLQCgICAgKxly5bF1a5d+4F7D2rUqJG3a9eu02PHjq3eq1evwIyMDHM3
N7e8xo0bp3l5eT1R70JzsbLKfxz/c+WD/O7YsWN2TZs2LXbr3N/fP/vw4cOnhw8f7jNkyJAaGRkZ
5rVq1cpavXr1ef2FmoODQ+GGDRvOvfXWW37PPvtsHU9Pz9wJEyZcGT16tG9J7aSstujj45P//vvv
X541a5bHxx9/7BMREZF+8ODBWMPldOvW7e6aNWvOTZo0yatFixZuFhYWhSEhIZlt27Yt9WGv9957
79rixYvdvv76a5cRI0akludYs2LFiosDBw70e/nll4NsbGwKX3311RvNmjW7m5OTU+bd3RUrViRE
RUW5f/bZZ54jR460sre3LwgMDMweNmzYdUC2o6+++qrazJkzPTMzM809PDxyR44ceVX/kKO1tXXh
5MmTva9cuWJpbm4uateunbV+/fpzxi5GAGDs2LE3MjIyzL744gvPcePG+Xp4eOR98MEHl/8OD026
WLnkm/p/rqxI+vnz57vWq1cvw1gPaKdOne46Ojrmz50713X58uXxgwcP9uvZs2egtbV1Yd++fVPa
tWt3Kzk52RKQvdZLly6Ni4yM9G3UqFFdT0/P3KioqMsff/xxdcPlzps3z2PevHkeAODk5FRQp06d
zPXr15+rV69eDiDby8aNG8+OGzeu+rPPPhtiYWFR2LJlyzvffPNN0UPHvXr1unP9+vX4L7/80iM6
OtqratWq+QMGDLjx2WefJQGyHcfFxVn379/f5datW7oqVarkt27d+s7cuXMv68s7ffr0xKlTp3rN
nz/fw93dPffKlSvHraysxM6dO89Nmzat2urVq12io6O9zM3N4ePjk9O2bds72nHwWlOnTr16+fJl
yz59+gTqdDrRqVOnm4MHD76+du1aFwCwsLAQt2/fNh82bJh/SkqKhZ2dXcHTTz+dNmvWrEtA2W3m
QZiZmeG33347P3bsWK/33nvP5/r16xb67T1mzJjkspfw+JHhOytZ5YiJiYkPDw9/4g+gjLF/prNn
z1oGBweHLV++/Hzfvn0rdcz2kyI/Px8BAQGh7dq1uz1//vz7njdgjLGYmBjX8PBwf1Plxz3ejDH2
D/D11187+/j45NWqVSvn/Pnzlu+//351Ly+v3K5du5b6xpG/k19//dU+OTnZonHjxpl37twx++yz
z9yvXLliWVKPHmOMmRoH3owx9g+Qmpqqmzp1qtf169ctnZyc8iMiItLXrVt3Qf3nTP8v5Ofn0/Tp
0z0TExOtdDqdCAoKyvrll1/OlvTuYMYYMzUeavKI8FATxhhjjLEnm6mHmvDrBBljjDHGGDMBDrwf
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#25552;&#39640;&#25928;&#26524;">&#25552;&#39640;&#25928;&#26524;<a class="anchor-link" href="#&#25552;&#39640;&#25928;&#26524;">&#182;</a></h2><p>在这最后一节中，您将从三个有监督的学习模型中选择 <em>最好的</em> 模型来使用学生数据。你将在整个训练集（<code>X_train</code>和<code>y_train</code>）上使用网格搜索优化至少调节一个参数以获得一个比没有调节之前更好的 F-score。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-3---&#36873;&#25321;&#26368;&#20339;&#30340;&#27169;&#22411;">&#38382;&#39064; 3 - &#36873;&#25321;&#26368;&#20339;&#30340;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-3---&#36873;&#25321;&#26368;&#20339;&#30340;&#27169;&#22411;">&#182;</a></h3><p><em>基于你前面做的评价，用一到两段话向 </em>CharityML<em> 解释这三个模型中哪一个对于判断被调查者的年收入大于 \$50,000 是最合适的。</em><br>
<strong>提示：</strong>你的答案应该包括评价指标，预测/训练时间，以及该算法是否适合这里的数据。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong>LogisticRegression表现比较好
原因：对于决策树来说，很明显出现了过拟合现象。对于AdaBoost来说，总体来说精度最高，但是预测/训练时间成本太高，此数据集含有13个特征，特征间联系不强，综合考虑模型的预测精度和时间成本，所以选择逻辑回归</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-4---&#29992;&#36890;&#20439;&#30340;&#35805;&#35299;&#37322;&#27169;&#22411;">&#38382;&#39064; 4 - &#29992;&#36890;&#20439;&#30340;&#35805;&#35299;&#37322;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-4---&#29992;&#36890;&#20439;&#30340;&#35805;&#35299;&#37322;&#27169;&#22411;">&#182;</a></h3><p><em>用一到两段话，向 </em>CharityML<em> 用外行也听得懂的话来解释最终模型是如何工作的。你需要解释所选模型的主要特点。例如，这个模型是怎样被训练的，它又是如何做出预测的。避免使用高级的数学或技术术语，不要使用公式或特定的算法名词。</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答： </strong> 逻辑回归模型使用一个逻辑函数，输入数据，然后输出数据属于某一类别的概率，例如概率&gt;0.5则该输入数据属于1类，反之则属于0类。在学习过程中模型首先根据默认的逻辑函数系数来计算预测值和实际误差，然后根据误差来确定新的函数系数，循环这个过程直到误差在可接受范围内，逻辑函数的系数也就确定了。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;&#65306;&#27169;&#22411;&#35843;&#20248;">&#32451;&#20064;&#65306;&#27169;&#22411;&#35843;&#20248;<a class="anchor-link" href="#&#32451;&#20064;&#65306;&#27169;&#22411;&#35843;&#20248;">&#182;</a></h3><p>调节选择的模型的参数。使用网格搜索（GridSearchCV）来至少调整模型的重要参数（至少调整一个），这个参数至少需尝试3个不同的值。你要使用整个训练集来完成这个过程。在接下来的代码单元中，你需要实现以下功能：</p>
<ul>
<li>导入<a href="http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html"><code>sklearn.model_selection.GridSearchCV</code></a> 和 <a href="http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html"><code>sklearn.metrics.make_scorer</code></a>.</li>
<li>初始化你选择的分类器，并将其存储在<code>clf</code>中。<ul>
<li>设置<code>random_state</code> (如果有这个参数)。</li>
</ul>
</li>
<li>创建一个对于这个模型你希望调整参数的字典。<ul>
<li>例如: parameters = {'parameter' : [list of values]}。</li>
<li><strong>注意：</strong> 如果你的学习器有 <code>max_features</code> 参数，请不要调节它！</li>
</ul>
</li>
<li>使用<code>make_scorer</code>来创建一个<code>fbeta_score</code>评分对象（设置$\beta = 0.5$）。</li>
<li>在分类器clf上用'scorer'作为评价函数运行网格搜索，并将结果存储在grid_obj中。</li>
<li>用训练集（X_train, y_train）训练grid search object,并将结果存储在<code>grid_fit</code>中。</li>
</ul>
<p><strong>注意：</strong> 取决于你选择的参数列表，下面实现的代码可能需要花一些时间运行！</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[22]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO：导入&#39;GridSearchCV&#39;, &#39;make_scorer&#39;和其他一些需要的库</span>
<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">make_scorer</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">GridSearchCV</span>
<span class="c1"># TODO：初始化分类器</span>
<span class="n">clf</span> <span class="o">=</span> <span class="n">linear_model</span><span class="o">.</span><span class="n">LogisticRegression</span><span class="p">(</span><span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>

<span class="c1"># TODO：创建你希望调节的参数列表</span>
<span class="n">parameters</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;solver&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;liblinear&#39;</span><span class="p">,</span><span class="s1">&#39;lbfgs&#39;</span><span class="p">,</span><span class="s1">&#39;newton-cg&#39;</span><span class="p">,</span><span class="s1">&#39;sag&#39;</span><span class="p">]}</span>

<span class="c1"># TODO：创建一个fbeta_score打分对象</span>
<span class="n">scorer</span> <span class="o">=</span> <span class="n">make_scorer</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">,</span><span class="n">beta</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>

<span class="c1"># TODO：在分类器上使用网格搜索，使用&#39;scorer&#39;作为评价函数</span>
<span class="n">grid_obj</span> <span class="o">=</span> <span class="n">GridSearchCV</span><span class="p">(</span><span class="n">clf</span><span class="p">,</span> <span class="n">parameters</span><span class="p">,</span> <span class="n">scoring</span><span class="o">=</span><span class="n">scorer</span><span class="p">,</span><span class="n">cv</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>

<span class="c1"># TODO：用训练数据拟合网格搜索对象并找到最佳参数</span>
<span class="n">grid_obj</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span><span class="n">y_train</span><span class="p">)</span>
<span class="c1"># 得到estimator</span>
<span class="n">best_clf</span> <span class="o">=</span> <span class="n">grid_obj</span><span class="o">.</span><span class="n">best_estimator_</span>

<span class="c1"># 使用没有调优的模型做预测</span>
<span class="n">predictions</span> <span class="o">=</span> <span class="p">(</span><span class="n">clf</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">))</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>
<span class="n">best_predictions</span> <span class="o">=</span> <span class="n">best_clf</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>

<span class="c1"># 汇报调优后的模型</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;best_clf</span><span class="se">\n</span><span class="s2">------&quot;</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="n">best_clf</span><span class="p">)</span>

<span class="c1"># 汇报调参前和调参后的分数</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Unoptimized model</span><span class="se">\n</span><span class="s2">------&quot;</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Accuracy score on validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">predictions</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;F-score on validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Optimized Model</span><span class="se">\n</span><span class="s2">------&quot;</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Final accuracy score on the validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Final F-score on the validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stderr output_text">
<pre>D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:757: ConvergenceWarning: lbfgs failed to converge. Increase the number of iterations.
  &#34;of iterations.&#34;, ConvergenceWarning)
D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:757: ConvergenceWarning: lbfgs failed to converge. Increase the number of iterations.
  &#34;of iterations.&#34;, ConvergenceWarning)
D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:757: ConvergenceWarning: lbfgs failed to converge. Increase the number of iterations.
  &#34;of iterations.&#34;, ConvergenceWarning)
D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:757: ConvergenceWarning: lbfgs failed to converge. Increase the number of iterations.
  &#34;of iterations.&#34;, ConvergenceWarning)
D:\conda\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to &#39;lbfgs&#39; in 0.22. Specify a solver to silence this warning.
  FutureWarning)
</pre>
</div>
</div>

<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>best_clf
------
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, max_iter=100, multi_class=&#39;warn&#39;,
          n_jobs=None, penalty=&#39;l2&#39;, random_state=42, solver=&#39;lbfgs&#39;,
          tol=0.0001, verbose=0, warm_start=False)

Unoptimized model
------
Accuracy score on validation data: 0.8536
F-score on validation data: 0.7182

Optimized Model
------
Final accuracy score on the validation data: 0.8542
Final F-score on the validation data: 0.7194
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-5---&#26368;&#32456;&#27169;&#22411;&#35780;&#20272;">&#38382;&#39064; 5 - &#26368;&#32456;&#27169;&#22411;&#35780;&#20272;<a class="anchor-link" href="#&#38382;&#39064;-5---&#26368;&#32456;&#27169;&#22411;&#35780;&#20272;">&#182;</a></h3><p><em>你的最优模型在测试数据上的准确率和 F-score 是多少？这些分数比没有优化的模型好还是差？</em>
<strong>注意：</strong>请在下面的表格中填写你的结果，然后在答案框中提供讨论。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h4 id="&#32467;&#26524;:">&#32467;&#26524;:<a class="anchor-link" href="#&#32467;&#26524;:">&#182;</a></h4><table>
<thead><tr>
<th style="text-align:center">评价指标</th>
<th style="text-align:center">未优化的模型</th>
<th style="text-align:center">优化的模型</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">准确率</td>
<td style="text-align:center">0.8536</td>
<td style="text-align:center">0.8542</td>
</tr>
<tr>
<td style="text-align:center">F-score</td>
<td style="text-align:center">0.7182</td>
<td style="text-align:center">0.7194</td>
</tr>
</tbody>
</table>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong>模型提升很少，不同的损失函数对结果影响很小。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<hr>
<h2 id="&#29305;&#24449;&#30340;&#37325;&#35201;&#24615;">&#29305;&#24449;&#30340;&#37325;&#35201;&#24615;<a class="anchor-link" href="#&#29305;&#24449;&#30340;&#37325;&#35201;&#24615;">&#182;</a></h2><p>在数据上（比如我们这里使用的人口普查的数据）使用监督学习算法的一个重要的任务是决定哪些特征能够提供最强的预测能力。专注于少量的有效特征和标签之间的关系，我们能够更加简单地理解这些现象，这在很多情况下都是十分有用的。在这个项目的情境下这表示我们希望选择一小部分特征，这些特征能够在预测被调查者是否年收入大于\$50,000这个问题上有很强的预测能力。</p>
<p>选择一个有 <code>'feature_importance_'</code> 属性的scikit学习分类器（例如 AdaBoost，随机森林）。<code>'feature_importance_'</code> 属性是对特征的重要性排序的函数。在下一个代码单元中用这个分类器拟合训练集数据并使用这个属性来决定人口普查数据中最重要的5个特征。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-6---&#35266;&#23519;&#29305;&#24449;&#30456;&#20851;&#24615;">&#38382;&#39064; 6 - &#35266;&#23519;&#29305;&#24449;&#30456;&#20851;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-6---&#35266;&#23519;&#29305;&#24449;&#30456;&#20851;&#24615;">&#182;</a></h3><p>当<strong>探索数据</strong>的时候，它显示在这个人口普查数据集中每一条记录我们有十三个可用的特征。<br>
<em>在这十三个记录中，你认为哪五个特征对于预测是最重要的，选择每个特征的理由是什么？你会怎样对他们排序？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<ul>
<li>特征1:occupation 职位越高，收入也高，这个关系比较普遍，适用性较强</li>
<li>特征2:education_level/num 学历越高，收入水平也比较高，</li>
<li>特征3:marital-status 离异或者单身，收入不稳定</li>
<li>特征4:age 一般来讲年龄越大，工龄时间长，工资水平高</li>
<li>特征5:hours-per-week 工作时间高，收入水平高，但是和时薪有关系</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#32451;&#20064;---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#32451;&#20064; - &#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;<a class="anchor-link" href="#&#32451;&#20064;---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#182;</a></h3><p>选择一个<code>scikit-learn</code>中有<code>feature_importance_</code>属性的监督学习分类器，这个属性是一个在做预测的时候根据所选择的算法来对特征重要性进行排序的功能。</p>
<p>在下面的代码单元中，你将要实现以下功能：</p>
<ul>
<li>如果这个模型和你前面使用的三个模型不一样的话从sklearn中导入一个监督学习模型。</li>
<li>在整个训练集上训练一个监督学习模型。</li>
<li>使用模型中的 <code>'feature_importances_'</code>提取特征的重要性。</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO：导入一个有&#39;feature_importances_&#39;的监督学习模型</span>

<span class="c1"># TODO：在训练集上训练一个监督学习模型</span>
<span class="n">model</span> <span class="o">=</span> <span class="n">tree</span><span class="o">.</span><span class="n">DecisionTreeClassifier</span><span class="p">()</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">,</span><span class="n">y_train</span><span class="p">)</span>

<span class="c1"># TODO： 提取特征重要性</span>
<span class="n">importances</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">feature_importances_</span>

<span class="c1"># 绘图</span>
<span class="n">vs</span><span class="o">.</span><span class="n">feature_plot</span><span class="p">(</span><span class="n">importances</span><span class="p">,</span> <span class="n">X_train</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>




<div class="output_png output_subarea ">
<img src="
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
/RkwYAAXXXRRU2ddpF7sOmvQv1K0bduWQYMGVf/NmTOn3vn+6KOPuPzyy+u9XCncnU022YT//ve/
ALz77ruYGU8++WR1mi5durBw4cJa13H33XcXLTvyPfroo3znO98pOm/s2LF89tlna5B7EWkJFACu
haqqqjjhhBO47777qKio4JZbbqGioqJGml69evHYY4/x0ksv8bvf/Y5Ro0YBUFZWxoUXXkhFRQWT
J0/msssuW2VZkaxbZ511eP7556v/1uRnI9c0AKyqqqozjZkxdOhQnn76aQAmTZrEjjvuyKRJkwB4
7bXX6Ny5M507d651HSNGjOCMM86od/5yFACKtG4KANdCU6ZMoU+fPvTu3Zv27dszcuRI7rrrrhpp
hg0bxle+8hUAhg4dSmVlJQCbb745gwcPBmCDDTagX79+zJs3r2m/gEgLVFVVxemnn86QIUPYfvvt
ueKKKwBYvHgx3/zmNxk8eDADBw6svhbPOOMM3njjDQYNGsTpp5++Sm3aiSeeyPjx44H4acpf/epX
DB48mFtvvZU33niDfffdl5122ok99tiDGTNmrJKfYcOGVQd8kyZN4pRTTqkREO62224ALFiwgEMO
OYQhQ4YwZMgQnnrqKQDGjx/PiSeeCMAbb7zB0KFDGThwIGeeeSbrr79+9XYWL17M9773PbbddlsO
P/xw3J2LL76Yd955h7322ou99tqrIXeziKwlFACuhebNm0ePHj2qP3fv3n21Qdw111zDfvvtt8r0
OXPm8Nxzz7HLLrs0Sj5FWqrPP/+8uvn3oIMOAuI62nDDDZk6dSpTp07lqquuYvbs2XTs2JE77riD
Z599lkceeYRf/OIXuDtjxoxhq6224vnnn+f888+vc5udO3fm2WefZeTIkYwaNYpLLrmE6dOnc8EF
F3D88cevkn633XarDgCnTJnCQQcdxNy5c4EIAIcNGwbAySefzCmnnMLUqVO5/fbbOe6441ZZ18kn
n8zJJ5/MSy+9RPfu3WvMe+655xg7diwVFRW8+eabPPXUU5x00klsscUWPPLIIzzyyCP127ki0iLo
PYAt3COPPMI111xTo28QxFP9IYccwtixY+nUqVMz5U5k7ZRrAs73wAMP8OKLL3LbbbcB8PHHHzNz
5ky6d+/Ob37zGx5//HHatGnDvHnzeO+99+q9zcMOOwyIa3PSpEkceuih1fOWLl26SvohQ4bw3HPP
8emnn7J8+XLWX399evfuzaxZs5g0aRK/+MUvAHjooYdqdPNYtGgRixcvrrGup59+mjvvvBOAH/7w
h5x22mnV83beeefqoDDXH3L33Xev9/cTkZZFAeBaqFu3btVP+hAvzu3Wrdsq6V588UWOO+447rvv
vhp9gZYvX84hhxzC4YcfzsEHH9wkeRZp6dydSy65hOHDh9eYPn78eBYsWMD06dNp164dPXv2LPoe
vLKyMlasWFH9uTDNeuutB8CKFSvYaKONVglAC6277rpsvfXWXHvttdXdOoYOHcq9997L+++/T9++
favXN3nyZDp27Fj/Lw106NCh+v9t27bliy++WKP1iEjLoibgtdCQIUOYOXMms2fPZtmyZUyYMIER
I0bUSPP2229z8MEHc8MNN7DNNttUT3d3jj32WPr168epp57a1FkXabGGDx/O3/72N5YvXw7A66+/
zqeffsrHH39M165dadeuHY888ghvvfUWEH1sP/nkk+rlt9xySyoqKli6dCkfffQRDz/8cNHtdOrU
iV69enHrrbcCcc3mRvEXGjZsGGPHjmXXXXcFYNddd+Wiiy5i6NCh1e/j22effbjkkkuqlykWWA4d
OpTbb78dgAkTJpS0Pwq/n4i0LqoBXAuVlZVx6aWXMnz4cKqqqjjmmGMYMGAA48aNA2D06NGcffbZ
LFy4sLrvUFlZGdOmTeOpp57ihhtuYODAgQwaNAiA8847j/3337/Zvo/I6viPvbmzAMBxxx3HnDlz
GDx4MO5Oly5duPPOOzn88MM54IADGDhwIOXl5Wy77bZA9Onbbbfd2G677dhvv/04//zz+f73v892
221Hr1692HHHHWvd1k033cRPf/pTzjnnHJYvX87IkSPZYYcdVkm32267cdFFF1UHgIMHD6aysrJG
P7+LL76YE044ge23354vvviCPffcs7qsyBk7dixHHHEE5557Lvvuuy8bbrhhnftj1KhR7LvvvtV9
AUWkdTH3taPwbWjl5eU+bdq05s6GiBR49dVX6devX3NnI1M+++wz1llnHcyMCRMmcMstt6zyZoH6
0DEUWXuZ2XR3L68rnWoARURauenTp3PiiSfi7my00UZce+21zZ0lEWlmCgBFRFq5PfbYo9Z+hiKS
TRoEIiJNrrV2PckCHTuR1kEBoIg0qY4dO7Jw4UIFEi2Qu7Nw4cI1fuWMiKw91AQsIk2qe/fuVFZW
smDBgubOiqyBjh07rvJrIiLS8igAXAN2nTV3FtY6a8urPGTt165dO3r16tXc2RARyTQ1AYuIiIhk
jAJAERERkYxRACgiIiKSMQoARURERDJGAaCIiIhIxigAFBEREckYBYAiIiIiGaMAUERERCRjFACK
iIiIZIwCQBEREZGMUQAoIiIikjEKAEVEREQypskCQDPb18xeM7NZZnZGkfmHm9mLZvaSmU0ysx1K
XVZEREREStckAaCZtQUuA/YD+gM/MLP+BclmA19z94HAH4Er67GsiIiIiJSoqWoAdwZmufub7r4M
mAAcmJ/A3Se5+3/Tx8lA91KXFREREZHSNVUA2A2Ym/e5Mk2rzbHAffVd1sxGmdk0M5u2YMGCL5Fd
ERERkdZrrRsEYmZ7EQHgr+q7rLtf6e7l7l7epUuXhs+ciIiISCtQ1kTbmQf0yPvcPU2rwcy2B64G
9nP3hfVZVkRERERK01Q1gFOBrc2sl5m1B0YCd+cnMLOvAv8CjnT31+uzrIiIiIiUrklqAN39CzM7
EbgfaAtc6+6vmNnoNH8c8HugM3C5mQF8kZpziy7bFPkWERERaY2aqgkYd78XuLdg2ri8/x8HHFfq
siIiIiKyZta6QSAiIiIi0rgUAIqIiIhkjAJAERERkYxRACgiIiKSMQoARURERDJGAaCIiIhIxigA
FBEREckYBYAiIiIiGaMAUERERCRjFACKiIiIZIwCQBEREZGMUQAoIiIikjEKAEVEREQyRgGgiIiI
SMYoABQRERHJGAWAIiIiIhmjAFBEREQkYxQAijSyiRMn0rdvX/r06cOYMWNWmT9jxgx23XVXOnTo
wAUXXFA9/bXXXmPQoEHVf506dWLs2LFNmXUREWmlypo7AyKtWVVVFSeccAIPPvgg3bt3Z8iQIYwY
MYL+/ftXp9l44425+OKLufPOO2ss27dvX55//vnq9XTr1o2DDjqoSfMvIiKtk2oARRrRlClT6NOn
D71796Z9+/aMHDmSu+66q0aarl27MmTIENq1a1freh5++GG22morttxyy8bOsoiIZIACQJFGNG/e
PHr06FH9uXv37sybN6/e65kwYQI/+MEPGjJrIiKSYQoARdZyy5Yt4+677+bQQw9t7qyIiEgroQBQ
pBF169aNuXPnVn+urKykW7du9VrHfffdx+DBg9l0000bOnsiIpJRCgBFGtGQIUOYOXMms2fPZtmy
ZUyYMIEW8Q72AAAgAElEQVQRI0bUax233HKLmn9FRKRBaRSwSCMqKyvj0ksvZfjw4VRVVXHMMccw
YMAAxo0bB8Do0aOZP38+5eXlLFq0iDZt2jB27FgqKiro1KkTn376KQ8++CBXXHFFM38TERFpTczd
mzsPjaK8vNynTZvWKOu266xR1tuS+Y9b53kkIiLSkpjZdHcvryudmoBFREREMkYBoIiIiEjGKAAU
ERERyRgFgCIiIiIZowBQREREJGP0GhjJNI3oXpVGdIuItH6qARQRERHJGAWAIiIiIhmjAFBEREQk
YxQAioiIiGSMAkARERGRjFEAKCIiIpIxCgBFREREMkYBoIiIiEjGKAAUERERyRgFgCIiIiIZowBQ
REREJGMUAIqIiIhkjAJAERERkYxpsgDQzPY1s9fMbJaZnVFk/rZm9rSZLTWz0wrmzTGzl8zseTOb
1lR5FhEREWmNyppiI2bWFrgM2BuoBKaa2d3uXpGX7EPgJOC7taxmL3f/oHFzKiIiItL6NVUN4M7A
LHd/092XAROAA/MTuPv77j4VWN5EeRIRERHJpKYKALsBc/M+V6ZppXLgITObbmajaktkZqPMbJqZ
TVuwYMEaZlVERESkdWspg0B2d/dBwH7ACWa2Z7FE7n6lu5e7e3mXLl2aNociIiIiLURTBYDzgB55
n7unaSVx93np3/eBO4gmZRERERFZA00VAE4FtjazXmbWHhgJ3F3Kgma2npltkPs/sA/wcqPlVERE
RKSVa5JRwO7+hZmdCNwPtAWudfdXzGx0mj/OzDYDpgGdgBVm9nOgP7AJcIeZ5fJ7s7tPbIp8i4iI
iLRGTRIAArj7vcC9BdPG5f1/PtE0XGgRsEPj5k5EREQkO1rKIBARERERaSAKAEVEREQyRgGgiIiI
SMYoABQRERHJGAWAIiIiIhmjAFBEREQkYxQAioiIiGSMAkARERGRjFEAKCIiIpIxJQeAZnZoLdO/
13DZERFZe02cOJG+ffvSp08fxowZs8r8GTNmsOuuu9KhQwcuuOCC6ulz585lr732on///gwYMICL
LrqoKbMtIrKK+tQAXlPL9CsbIiMiImuzqqoqTjjhBO677z4qKiq45ZZbqKioqJFm44035uKLL+a0
006rMb2srIwLL7yQiooKJk+ezGWXXbbKsiIiTanOANDMeptZb6CNmfXKfU5/3wKWNH42RUSa15Qp
U+jTpw+9e/emffv2jBw5krvuuqtGmq5duzJkyBDatWtXY/rmm2/O4MGDAdhggw3o168f8+bNa7K8
i4gUKishzSzAAQPeKJg3HzirgfMkIrLWmTdvHj169Kj+3L17d5555pl6r2fOnDk899xz7LLLLg2Z
PRGReqkzAHT3NgBm9pi7f63xsyQi0jotXryYQw45hLFjx9KpU6fmzo6IZFjJfQAV/IlIlnXr1o25
c+dWf66srKRbt24lL798+XIOOeQQDj/8cA4++ODGyKKISMnqMwq4l5ndbGYVZvZ2/l9jZlBEZG0w
ZMgQZs6cyezZs1m2bBkTJkxgxIgRJS3r7hx77LH069ePU089tZFzKqXSqG7JslL6AObcTPQB/AXw
WeNkR0Rk7VRWVsall17K8OHDqaqq4phjjmHAgAGMGzcOgNGjRzN//nzKy8tZtGgRbdq0YezYsVRU
VPDiiy9yww03MHDgQAYNGgTAeeedx/7779+cXynTcqO6H3zwQbp3786QIUMYMWIE/fv3r06TG9V9
55131lg2N6p78ODBfPLJJ+y0007svffeNZYVWdvVJwAcAOzm7isaKzMiImuz/ffff5WgbfTo0dX/
32yzzaisrFxlud133x13b/T8SenyR3UD1aO684O4rl270rVrV+65554ay26++eZsvvnmQM1R3QoA
pSWpz3sAHwd2bKyMiIiINJVio7rX5NU8GtUtLdVqawDN7Oy8j3OAiWZ2B/H6l2ru/vuGz5qIiMja
S6O6pSWrqwm4R8HnfwPtikwXERFpMTSqW7JutQGgux/dVBkRERFpKvmjurt168aECRO4+eabS1pW
o7qlNSh5EEj6ObhilgLvanCIiIi0FBrVLVlnpY5MM7MVxE/CQfwsXP6CK4C7gePd/b0GzeEaKi8v
92nTpjXKuu06a5T1tmT+45Y5wlHHclU6lq1HSz2WIrLmzGy6u5fXla4+o4B/QrwLcBugI9AXuAE4
HhhI1CZeVv+sioiIiEhTqs97AP8f0Mfdl6TPs8zseOB1d7/CzI4CZjZ0BkVERESkYdWnBrAN0LNg
2leBtun/n1K/gFJEREREmkF9AraxwH/M7O/AXKA7cHSaDrA/8HTDZk9EREREGlrJAaC7/9nMXgQO
BQYD7wLHuvvENP9O4M7VrEJERERE1gL1arJNwd7ERsqLiIgIoFHdxWhUtzSkun4K7rfufm76/9m1
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
/w/tV9U5UtkG7AAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-7---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#38382;&#39064; 7 - &#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;<a class="anchor-link" href="#&#38382;&#39064;-7---&#25552;&#21462;&#29305;&#24449;&#37325;&#35201;&#24615;">&#182;</a></h3><p>观察上面创建的展示五个用于预测被调查者年收入是否大于\$50,000最相关的特征的可视化图像。</p>
<p><em>这五个特征的权重加起来是否超过了0.5?</em><br>
<em>这五个特征和你在<strong>问题 6</strong>中讨论的特征比较怎么样？</em><br>
<em>如果说你的答案和这里的相近，那么这个可视化怎样佐证了你的想法？</em><br>
<em>如果你的选择不相近，那么为什么你觉得这些特征更加相关？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong></p>
<p>权重为0.73，超过了0.5
有marital-status，education-num，age和hours-per-week符合，但是权重不同。
occupation相关性也比较强，但是由于模型工作分类比较多，定义比较模糊，所以导致模型认为相关性不强。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#29305;&#24449;&#36873;&#25321;">&#29305;&#24449;&#36873;&#25321;<a class="anchor-link" href="#&#29305;&#24449;&#36873;&#25321;">&#182;</a></h3><p>如果我们只是用可用特征的一个子集的话模型表现会怎么样？通过使用更少的特征来训练，在评价指标的角度来看我们的期望是训练和预测的时间会更少。从上面的可视化来看，我们可以看到前五个最重要的特征贡献了数据中<strong>所有</strong>特征中超过一半的重要性。这提示我们可以尝试去<strong>减小特征空间</strong>，简化模型需要学习的信息。下面代码单元将使用你前面发现的优化模型，并<strong>只使用五个最重要的特征</strong>在相同的训练集上训练模型。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[24]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># 导入克隆模型的功能</span>
<span class="kn">from</span> <span class="nn">sklearn.base</span> <span class="k">import</span> <span class="n">clone</span>

<span class="c1"># 减小特征空间</span>
<span class="n">X_train_reduced</span> <span class="o">=</span> <span class="n">X_train</span><span class="p">[</span><span class="n">X_train</span><span class="o">.</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">[(</span><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">importances</span><span class="p">)[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])[:</span><span class="mi">5</span><span class="p">]]]</span>
<span class="n">X_val_reduced</span> <span class="o">=</span> <span class="n">X_val</span><span class="p">[</span><span class="n">X_val</span><span class="o">.</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">[(</span><span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">importances</span><span class="p">)[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])[:</span><span class="mi">5</span><span class="p">]]]</span>

<span class="c1"># 在前面的网格搜索的基础上训练一个“最好的”模型</span>
<span class="n">clf_on_reduced</span> <span class="o">=</span> <span class="p">(</span><span class="n">clone</span><span class="p">(</span><span class="n">best_clf</span><span class="p">))</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train_reduced</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

<span class="c1"># 做一个新的预测</span>
<span class="n">reduced_predictions</span> <span class="o">=</span> <span class="n">clf_on_reduced</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val_reduced</span><span class="p">)</span>

<span class="c1"># 对于每一个版本的数据汇报最终模型的分数</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Final Model trained on full data</span><span class="se">\n</span><span class="s2">------&quot;</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Accuracy on validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;F-score on validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">best_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Final Model trained on reduced data</span><span class="se">\n</span><span class="s2">------&quot;</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Accuracy on validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">reduced_predictions</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;F-score on validation data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_val</span><span class="p">,</span> <span class="n">reduced_predictions</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Final Model trained on full data
------
Accuracy on validation data: 0.8542
F-score on validation data: 0.7194

Final Model trained on reduced data
------
Accuracy on validation data: 0.8380
F-score on validation data: 0.6838
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-8---&#29305;&#24449;&#36873;&#25321;&#30340;&#24433;&#21709;">&#38382;&#39064; 8 - &#29305;&#24449;&#36873;&#25321;&#30340;&#24433;&#21709;<a class="anchor-link" href="#&#38382;&#39064;-8---&#29305;&#24449;&#36873;&#25321;&#30340;&#24433;&#21709;">&#182;</a></h3><p><em>最终模型在只是用五个特征的数据上和使用所有的特征数据上的 F-score 和准确率相比怎么样？</em><br>
<em>如果训练时间是一个要考虑的因素，你会考虑使用部分特征的数据作为你的训练集吗？</em></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><strong>回答：</strong>
只使用5个特征导致准确率和F-score下降，但是训练时间变少。
使用部分特征能明显的降低训练时间，如果精度下降并不大，可以使用部分特征。</p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="&#38382;&#39064;-9---&#22312;&#27979;&#35797;&#38598;&#19978;&#27979;&#35797;&#20320;&#30340;&#27169;&#22411;">&#38382;&#39064; 9 - &#22312;&#27979;&#35797;&#38598;&#19978;&#27979;&#35797;&#20320;&#30340;&#27169;&#22411;<a class="anchor-link" href="#&#38382;&#39064;-9---&#22312;&#27979;&#35797;&#38598;&#19978;&#27979;&#35797;&#20320;&#30340;&#27169;&#22411;">&#182;</a></h3><p>终于到了测试的时候，记住，测试集只能用一次。</p>
<p><em>使用你最有信心的模型，在测试集上测试，计算出准确率和 F-score。</em>
<em>简述你选择这个模型的原因，并分析测试结果</em></p>
<p>回答：该模型精度较大，准确度有84.56%，F值为0.7，时间成本较小，而且比较简单</p>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#TODO test your model on testing data and report accuracy and F score</span>
<span class="n">best_clf_predict</span><span class="o">=</span><span class="n">best_clf</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_test</span><span class="p">)</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;Accuracy on test data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span> <span class="n">best_clf_predict</span><span class="p">)))</span>
<span class="nb">print</span> <span class="p">(</span><span class="s2">&quot;F-score on test data: </span><span class="si">{:.4f}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_test</span><span class="p">,</span> <span class="n">best_clf_predict</span><span class="p">,</span> <span class="n">beta</span> <span class="o">=</span> <span class="mf">0.5</span><span class="p">)))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_stream output_stdout output_text">
<pre>Accuracy on test data: 0.8456
F-score on test data: 0.7004
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="o">&gt;</span> <span class="o">**</span><span class="n">注意</span><span class="err">：</span><span class="o">**</span> <span class="n">当你写完了所有的代码</span><span class="err">，</span><span class="n">并且回答了所有的问题</span><span class="err">。</span><span class="n">你就可以把你的</span> <span class="n">iPython</span> <span class="n">Notebook</span> <span class="n">导出成</span> <span class="n">HTML</span> <span class="n">文件</span><span class="err">。</span><span class="n">你可以在菜单栏</span><span class="err">，</span><span class="n">这样导出</span><span class="o">**</span><span class="n">File</span> <span class="o">-&gt;</span> <span class="n">Download</span> <span class="k">as</span> <span class="o">-&gt;</span> <span class="n">HTML</span> <span class="p">(</span><span class="o">.</span><span class="n">html</span><span class="p">)</span><span class="o">**</span><span class="n">把这个</span> <span class="n">HTML</span> <span class="n">和这个</span> <span class="n">iPython</span> <span class="n">notebook</span> <span class="n">一起做为你的作业提交</span><span class="err">。</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area">

<div class="prompt"></div>


<div class="output_subarea output_text output_error">
<pre>
<span class="ansi-cyan-intense-fg ansi-bold">  File </span><span class="ansi-green-intense-fg ansi-bold">&#34;&lt;ipython-input-26-4fa2ef6e36a5&gt;&#34;</span><span class="ansi-cyan-intense-fg ansi-bold">, line </span><span class="ansi-green-intense-fg ansi-bold">1</span>
<span class="ansi-yellow-intense-fg ansi-bold">    &gt; **注意：** 当你写完了所有的代码，并且回答了所有的问题。你就可以把你的 iPython Notebook 导出成 HTML 文件。你可以在菜单栏，这样导出**File -&gt; Download as -&gt; HTML (.html)**把这个 HTML 和这个 iPython notebook 一起做为你的作业提交。</span>
<span class="ansi-white-intense-fg ansi-bold">    ^</span>
<span class="ansi-red-intense-fg ansi-bold">SyntaxError</span><span class="ansi-red-intense-fg ansi-bold">:</span> invalid syntax
</pre>
</div>
</div>

</div>
</div>

</div>
    </div>
  </div>
</body>

 


</html>
